1
Le modèle d'exécution SIMT et la partition des warps
AI032Lesson 6
00:00

Le SIMT (instruction unique, plusieurs threads) modèle est le cœur de l'architecture GPU. Bien que vous programmiez des threads individuels, le matériel les orchestre en une hiérarchie à deux niveaux composée de grilles et blocs. Pour maximiser l'efficacité, le matériel divise davantage ces blocs en unités de 32 threads appelées warps.

1. SIMT versus SIMD

Contrairement au SIMD sur CPU (comme SSE/AVX), où vous devez manuellement charger les données dans les registres, le SIMT permet aux threads d'apparaître indépendants. Le matériel regroupe automatiquement les threads en warps, en chargeant une seule instruction pour les 32 threads afin qu'ils s'exécutent en synchronisation.

2. Règle de linéarisation

Les programmeurs utilisent threadIdx.x, y, z pour la logique, mais le matériel les transforme en une séquence unidimensionnelle pour le planification :

Index = x + (y × blockDim.x) + (z × blockDim.x × blockDim.y)
Bloc 2D(8 × 8)Warp 0 : ID 0-31Warp 1 : ID 32-63

Puisque la dimension x est l'indice qui varie le plus rapidement, les threads ayant des valeurs consécutives de threadIdx.x vont généralement se trouver dans le même warp, ce qui est essentiel pour le regroupement mémoire.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>